EAI
The EAI adapter is used to interact with the Ericsson Adaptive Inventory (EAI) platform. It currently integrates with the following:
Entity | Operation |
---|---|
card | (get, create, update and delete) |
container | (get, create, update and delete) |
equipment | (get, create, update and delete) |
port | (get, create, update and delete) |
shelf | (get, create, update and delete) |
site | (get, create, update and delete) |
slot | (get, create, update and delete) |
trail | (get, create, update and delete) |
generic | (get, create, update and delete) |
Properties
Use the information in the table below to set the EAI Adapter properties. The host, port, and credentials are used to connect to EAI upon the adapter initially coming up. A connectivity check tells IAP the adapter has loaded successfully. The healthcheck tells IAP that it can reach EAI. The throttle section is all about throttling requests to EAI, and the request section defines properties to help handle requests.
Property Name | Type | Description |
---|---|---|
host |
String | Required. The IP or hostname of the EAI server. |
port |
Number | Required. The port of the EAI server. |
protocol |
String | Optional. Tells the adapter whether to use HTTP or HTTPS (http is the default). |
credentials.db_host |
String | Required. The IP or hostname of the database server. |
credentials.db_name |
String | Required. The name of the database to connect to. |
credentials.token |
String | Required. An authentication token used to authenticate with the EAI server. |
stub |
Boolean | Optional. Indicates whether the stub should run instead of making calls to EAI (very useful during basic testing). The default is false , which means connect to EAI. |
throttle.throttle_enabled |
Boolean | Optional. Defaults to false and simply states whether the adapter should use throttling or not. |
throttle.number_pronghorns |
Number | Optional. Defaults to 1 and states whether the throttling is done in a single IAP instance or whether requests are throttled across multiple IAPs. This is an important property for performance enhancements. Throttling in a single IAP uses an in-memory queue so there is less overhead. Throttling across multiple IAPs requires putting the request and queue information into a shared resource (e.g. database) so that each IAP can determine what is running and what is next to run. This requires additional IO overhead. |
throttle.sync_async |
String | Optional. Not used at this time. It is for future expansion of the throttling engine. |
throttle.max_in_queue |
Number | Optional. The maximum number of requests that IAP should allow into the queue before rejecting requests. This is not necessarily a limit on what IAP can handle but more about timely responses to the requests. The default is currently 1000. |
throttle.concurrent_max |
Number | Optional. Defines the number of request that IAP can send to EAI at one time. The default is 1 meaning each request must be sent to EAI in a serial manner. |
throttle.expire_timeout |
Number | Optional. This is a graceful timeout of the request session. After the request has completed, IAP will wait the additional expire timeout time (in milliseconds) prior to sending in the next request. Expire timeout defaults to 0. |
throttle.avg_runtime |
Number | Optional. An approximate average of how long it takes EAI to handle each request. This is an important number as it has performance implications. If the number is defined too low, it puts extra burden on IAP CPU and memory as the requests will continually try to see if they can run. If the number is defined too high, requests may wait longer than they need to before running. The number does not need to be exact but your throttling strategy depends heavily on this number being within reason. If averages range from 50 to 250 milliseconds you might pick an average run-time somewhere in the middle so that when EAI performance is exceptional you might be a little slower than you might like, but when it is poor you still run efficiently. The default is 200 milliseconds. |
request.number_retries |
Number | Tells IAP how many times to retry a request that has either aborted or taken the limit error before giving up and returning an error. |
request.limit_retry_error |
Number | Optional. The HTTP error status number which defines that no capacity was available and, after waiting a short interval, the adapter can retry the request. The default is 0. |
request.attempt_timeout |
Number | How long IAP should wait before aborting the attempt. On abort, IAP will back off the requests and run a healthcheck until it re-establishes connectivity to EAI and then it will re-attempt the request that aborted. The attempt timeout is optional and defaults to 5000 milliseconds. |
request.archiving |
Boolean | Optional. The default is false . The archiving flag archives the request, the results and various times (wait time, EAI time and overall time) in the eai_results collection in MongoDB. Before enabling this capability think about how much to archive and develop a strategy for cleaning up the collection in the database so that it does not get too large, especially if the responses are large. |
Sample Configuration
A sample configuration for the EAI adapter is provided. Be sure to configure the following properties.
host
port
protocol
credentials.dbHost
credentials.dbName
credentials.token
{
"id": "eai",
"type": "EAI",
"properties": {
"host": "eai.example.com",
"port": 443,
"protocol": "https",
"credentials": {
"dbHost": "eai.example.com",
"dbName": "granite",
"token": "Basic ABCDEFG=="
},
"stub": false,
"throttle": {
"throttle_enabled": false,
"number_pronghorns": 1,
"sync_async": "sync",
"max_in_queue": 1000,
"concurrent_max": 1,
"expire_timeout": 0,
"avg_runtime": 200
},
"request": {
"number_retries": 3,
"limit_retry_error": 401,
"attempt_timeout": 5000,
"archiving": false
}
}
}
Service Now
The ServiceNow Adapter interacts with the ServiceNow platform. It currently integrates with the following.
ServiceNow | Methods |
---|---|
CMDB Config Item | (get, create, and update) |
Incident | (get, create, and update) |
Problems | (get, create, and update) |
Change Request | (get, create, and update) |
Catalog Request | (get, create, and update) |
Catalog Request Item | (get, create, and update) |
Knowledge Base Article | (get, create, and update) |
User | (get, create, and update) |
Group | (get, create, and update) |
generic | (get, create, and update) |
Properties
Use the information in the table below to set the ServiceNow adapter properties. The host, port, and credentials are used to connect to ServiceNow upon the adapter initially coming up. A connectivity check tells IAP the adapter has loaded successfully. The healthcheck tells IAP that it can reach ServiceNow. The throttle section is all about throttling requests to ServiceNow, and the request section defines properties to help handle requests.
Property Name | Type | Description |
---|---|---|
host |
String | Required. The IP or hostname of the ServiceNow server. |
port |
Number | Required. The port of the ServiceNow server. |
protocol |
String | Optional. Tells the adapter whether to use HTTP or HTTPS (http is the default). |
credentials.username |
String | Required. The username to use when authenticating with ServiceNow. |
credentials.password |
String | Required. The password to use when authenticating with ServiceNow. |
credentials.token |
String | Required. The token used to authenticate with ServiceNow. |
stub |
Boolean | Optional. Indicates whether the stub should run instead of making calls to ServiceNow (very useful during basic testing). The default is false, which means connect to ServiceNow. |
throttle.throttle_enabled |
Boolean | Optional. Defaults to false and simply states whether the adapter should use throttling or not. |
throttle.number_pronghorns |
Number | Optional. Defaults to 1 and states whether the throttling is done in a single IAP instance or whether requests are throttled across multiple IAPs. This is an important property for performance enhancements. Throttling in a single IAP uses an in-memory queue so there is less overhead. Throttling across multiple IAPs requires putting the request and queue information into a shared resource, e.g., database,so that each IAP can determine what is running and what is next to run. This requires additional IO overhead. |
throttle.sync_async |
String | Optional. Not used at this time. It is for future expansion of the throttling engine. |
throttle.max_in_queue |
Number | Optional. The maximum number of requests that IAP should allow into the queue before rejecting requests. This is not necessarily a limit on what IAP can handle but more about timely responses to the requests. The default is currently 1000. |
throttle.concurrent_max |
Number | Optional. Defines the number of request that IAP can send to ServiceNow at one time. The default is 1 meaning each request must be sent to ServiceNow in a serial manner. |
throttle.expire_timeout |
Number | Optional. This is a graceful timeout of the request session. After the request has completed, IAP will wait the additional expire timeout time (in milliseconds) prior to sending in the next request. Expire timeout defaults to 0. |
throttle.avg_runtime |
Number | Optional. An approximate average of how long it takes ServiceNow to handle each request. This is an important number as it has performance implications. If the number is defined too low, it puts extra burden on IAP CPU and memory as the requests will continually try to see if they can run. If the number is defined too high, requests may wait longer than they need to before running. The number does not need to be exact but your throttling strategy depends heavily on this number being within reason. If averages range from 50 to 250 milliseconds you might pick an average run-time somewhere in the middle so that when ServiceNow performance is exceptional you might be a little slower than you might like, but when it is poor you still run efficiently. The default is 200 milliseconds. |
request.number_retries |
Number | Tells IAP how many times to retry a request that has either aborted or taken the limit error before giving up and returning an error. |
request.limit_retry_error |
Number | Optional. The HTTP error status number which defines that no capacity was available and, after waiting a short interval, the adapter can retry the request. The default is 0. |
request.attempt_timeout |
Number | How long IAP should wait before aborting the attempt. On abort, IAP will back off the requests and run a healthcheck until it re-establishes connectivity to ServiceNow and then it will re-attempt the request that aborted. The attempt timeout is optional and defaults to 5000 milliseconds. |
request.archiving |
Boolean | Optional. The default is false . The archiving flag archives the request, the results and various times (wait time, ServiceNow time and overall time) in the servicenow_results collection in MongoDB. Before enabling this capability consider how much to archive and develop a strategy for cleaning up the collection in the database so that it does not become too large, especially if the responses are large. |
Sample Configuration
A sample configuration for the ServiceNow adapter is provided. Be sure to configure the following properties:
host
port
protocol
credentials.username
credentials.password
credentials.token
{
"id": "servicenow",
"type": "ServiceNow",
"properties": {
"host": "customer.servicenow.com",
"port": 443,
"protocol": "https",
"credentials": {
"username": "",
"password": "",
"token": ""
},
"stub": false,
"throttle": {
"throttle_enabled": false,
"number_pronghorns": 1,
"sync_async": "sync",
"max_in_queue": 1000,
"concurrent_max": 1,
"expire_timeout": 0,
"avg_runtime": 200
},
"request": {
"number_retries": 3,
"limit_retry_error": 401,
"attempt_timeout": 5000,
"archiving": false
}
}
}
SQL
The SQL adapter allows interaction with a SQL database. This adapter can be configured for either direct SQL queries or in an object-relational mapping configuration. Reference the sample configurations for examples of each mode. Support for SSL/TLS encrypted connections will soon be available.
Properties
Property Name | Type | Description |
---|---|---|
host |
String | Required. The IP or hostname of the SQL database. |
port |
Number | Required. The port of the SQL database. |
dbName |
String | The name of the SQL database. |
credentials.user |
String | The username to use when authenticating with the SQL database. |
credentials.passwd |
String | The password to use when authenticating with SQL database. |
direct |
Boolean | A boolean flag indicating whether a direct connection to the database will be established and exposed. |
orm |
Boolean | A boolean flag indicating the object-relational-mapping connection to the database will be established and exposed. |
min |
Number | The minimum number of concurrent connections to open. Only used for ORM connections. |
max |
Number | The maximum number of concurrent connections to open. Only used for ORM connections. |
acquireTimeout |
Number | The number of milliseconds to wait before declaring the attempt to acquire a database connection has failed. Only used for direct connections. Default is 10,000. |
waitForConnection |
Boolean | Determines the behavior of the adapter when no connections are available. Only used for direct connections. Default is true . If true, the request will be queued for response when a connection is available. If false, the request will error immediately. |
connectionLimit |
Number | The number of supported concurrent connections. Only used for direct connections. Default is 10. |
queueLimit |
Number | The maximum number of connection requests allowed in the connection queue. Only used for direct connections. Default is 10. |
Direct Configuration
A sample configuration for direct SQL queries is provided. Be sure to configure the following properties.
host
port
dbName
credentials.user
credentials.passwd
{
"id": "mysql",
"type": "MySQLDriver",
"properties": {
"host": "localhost",
"port": 8888,
"dbName": "peering_insights",
"credentials": {
"user": "pronghorn",
"passwd": "$ENC87eb897b507afc1796db49409dd026188a832188a7d7439b"
},
"direct": true,
"orm": false,
"acquireTimeout": 10000,
"waitForConnection": true,
"connectionLimit": 10,
"queueLimit": 10
}
}
ORM Configuration
A sample configuration for object-relational mapping is provided. Be sure to configure the following properties:.
host
port
dbName
credentials.user
credentials.passwd
{
"id": "mysql",
"type": "MySQLDriver",
"properties": {
"host": "localhost",
"port": 8888,
"dbName": "peering_insights",
"credentials": {
"user": "pronghorn",
"passwd": "$ENC87eb897b507afc1796db49409dd026188a832188a7d7439b"
},
"direct": false,
"orm": true,
"min": 3,
"max": 7
}
}